#include <iostream>
#include <vector>

double findMedianSortedArrays(std::vector<int>& nums1, std::vector<int>& nums2) {
    int m = nums1.size();
    int n = nums2.size();
    int total = m + n;
    int i = 0, j = 0;
    int prev = 0, curr = 0;
    
    for (int k = 0; k <= total / 2; k++) {
        prev = curr;
        if (i < m && (j >= n || nums1[i] < nums2[j])) {
            curr = nums1[i];
            i++;
        } else {
            curr = nums2[j];
            j++;
        }
    }
    
    if (total % 2 == 0) {
        return (prev + curr) / 2.0;
    } else {
        return curr;
    }
}

int main() {
    std::vector<int> nums1 = {1, 3};
    std::vector<int> nums2 = {2, 4};
    
    double median = findMedianSortedArrays(nums1, nums2);
    
    std::cout << "Median of the two sorted arrays: " << median << std::endl;
    
    return 0;
}